<p>Dateien, die unter Windows gerade im Speicher geladen sind, werden gegen jede VerΣnderung geschⁿtzt (L÷schen, Umbenennen usw.). Damit aber auch Service Packs usw. diese Systemdateien austauschen k÷nnen, gibt es natⁿrlich auch dafⁿr einen vorgeschriebenen Weg.</p>
<p> </p>
<h2>Unter Windows 95/98/ME:</h2>
<p> </p>
<p><a name="kanchor1524"></a><a name="kanchor1525"></a>Windows sucht wΣhrend des Startvorgangs, aber noch bevor die graphische OberflΣche geladen wird, im Windows-Verzeichnis nach einer Datei mit dem Namen "WININIT.INI". Ist die Datei vorhanden, wird diese noch im DOS -Modus durch das Programm WININIT.EXE abgearbeitet (zu diesem Zeitpunkt ist es noch erlaubt bzw. m÷glich, Systemdateien auszutauschen). Dieses Programm erwartet in der INI-Datei unter dem Abschnitt [RENAME] die jeweiligen Anweisungen.</p>
<p>wird die Datei TEST.DLL mit der Datei ERSATZ.DLL ⁿberschrieben. Danach wird die Datei ERSATZ.DLL aus dem Verzeichnis gel÷scht. Nach dieser Aktualisierung sichert Windows die INI-Datei unter dem Namen WININIT.BAK ab und entfernt alle durchgefⁿhrten Anweisungen aus der WININIT.INI.</p>
<p> </p>
<p>Eine Anweisung der Art "NUL=c:\ordner\wegdamit.dll" l÷scht die angegebene Datei.</p>
<p> </p>
<p> </p>
<h2>Ab Windows NT</h2>
<p> </p>
<p>Hier wird statt auf eine Datei auf einen Zweig in der Registry zurⁿckgegriffen, der unter dem Registry Schlⁿssel</p>
<p>abgelegt wird. Dies erfolgt hauptsΣchlich aus Grⁿnden der Sicherheit, da auf diesen Schlⁿssel nur ein Administrator Zugriff hat. Darum ist es auch nur m÷glich, dass ein Administrator ein Service Pack installieren kann, hier werden nΣmlich einige Systemdateien ausgetauscht.</p>
<p> </p>
<p>Sie sollten sich diesen Schlⁿssel immer nur mit <a href="../tip0000/tip0004.htm">REGEDT32</a> ansehen, da dieser Wert als <a href="../tip0000/tip0002.htm#datentypen">Datentyp </a>REG_MULTI_SZ angelegt ist, mit REGEDIT wⁿrde man hier also nur HEX Zahlen sehen, was einem wohl wenig weiterhilft.</p>
<p> </p>
<p>Microsoft empfiehlt, diesen Wert nicht direkt ⁿber den Registry Editor zu verΣndern, sondern ⁿber die Systemfunktion "<b><a name="kanchor1527"></a>MoveFileEx</b>", da hier vorher eine ▄berprⁿfung durchgefⁿhrt wird. Fⁿr das obige Beispiel wⁿrde das dann so aussehen:</p>
<p>Alte Dateien im Zielverzeichnis werden nur dann durch neuere ersetzt, wenn der letzte Parameter des MoveFileEx-Aufrufs auf (<b>MOVEFILE_REPLACE_EXISTING | MOVEFILE_DELAY_UNTIL_REBOOT</b>) gesetzt wird.</p>
<p> </p>
<p><a name="kanchor1528"></a>MS liefert dafⁿr auch das Programm INUSE.EXE (aus dem Resource Kit), Informationen dazu finden Sie unter:</p>
<img src="../icons/hand.png" alt="Info" />Nur Administratoren haben die Berechtigung, auf diesen Registry-Schlⁿssel schreibend zuzugreifen.</p>
<p class="htmlinfo">
<img src="../icons/hand.png" alt="Info" />Es werden nur kurze Dateinamen verarbeitet (8.3).</p>
<p class="htmlinfo">
<img src="../icons/hand.png" alt="Info" />Mit dem Programm "MoveEx" von <a href="http://wwwthep.physik.uni-mainz.de/~frink/nt.html" target="_blank">http://wwwthep.physik.uni-mainz.de/~frink/nt.html</a>bekommt man auch die hΣrteren FΣlle in den Griff, da die Dateien beim Booten verschoben werden, bevor andere Prozesse starten.</p>